package tp.pr5.mv.window;

import java.awt.GridLayout;

import javax.swing.JPanel;

import tp.pr5.mv.CPU;
import tp.pr5.mv.Controller;
import tp.pr5.mv.Memory;
import tp.pr5.mv.Observable;
import tp.pr5.mv.OperandStack;

@SuppressWarnings("serial")
public class PilaYMemoriaPanel extends JPanel {
	
	// Panel compuesto de un panel para la pila y otro para la memoria
	 
	private VentanaPila ventanaPila;
	private VentanaMemoria ventanaMemoria;
	
	public PilaYMemoriaPanel (Controller controller, Observable<CPU.Observer> observableCPU, Observable<OperandStack.Observer> observableStack, Observable<Memory.Observer> observableMem) {
		
		super( new GridLayout(1,2) );
		init(controller, observableCPU, observableStack, observableMem);
	}
	
	public void init(Controller controller, Observable<CPU.Observer> observableCPU, Observable<OperandStack.Observer> observableStack, Observable<Memory.Observer> observableMem) {
		ventanaPila = new VentanaPila(controller, observableCPU);
		add( ventanaPila );
		
		observableStack.addObserver(ventanaPila);
		
		ventanaMemoria = new VentanaMemoria(controller, observableCPU, observableMem);
		add( ventanaMemoria );
	}


	
}
